package com.mexcad.db.delegate;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;



import com.mexcad.db.connectors.AcreedorConnector;
import com.mexcad.db.connectors.CatalogosConnector;
import com.mexcad.db.connectors.IvaUpdate;
import com.mexcad.db.dto.Acreedor;
import com.mexcad.db.dto.CKAcreedor;
import com.mexcad.db.dto.CKCreditoAcreedor;
import com.mexcad.db.dto.CKPagoAcreedor;
import com.mexcad.db.dto.CatAcreedorStatus;
import com.mexcad.db.dto.CatEsquemaCredito;
import com.mexcad.db.dto.CatEsquemaCreditoAc;
import com.mexcad.db.dto.CatMoneda;
import com.mexcad.db.dto.CatPeriodoSolicitado;
import com.mexcad.db.dto.CreditoAcreedor;
import com.mexcad.db.dto.PagoAcreedor;
import com.mexcad.db.utils.ExceptionDB;
import com.mexcad.db.utils.HibernateUtil;
import com.mexcad.utils.Formatter;


public class DelegateAcreedor {

	
	public static Acreedor getInstanciaAcreedor(){
		return AcreedorConnector.getInstanciaAcreedor();
	}
	public CKAcreedor getInstanciaCKAcreedor(){
		return AcreedorConnector.getInstanciaCKAcreedor();
	}

	public CreditoAcreedor getInstanciaCreditoAcreedor(){
		return AcreedorConnector.getInstanciaCreditoAcreedor();
	}
	public CKCreditoAcreedor getInstanciaCKCreditoAcreedor(){
		return AcreedorConnector.getInstanciaCKCreditoAcreedor();
	}
	
	public PagoAcreedor getInstanciaPagoAcreedor(){
		return new PagoAcreedor();
	}
	public CKPagoAcreedor getInstanciaCKPagoAcreedor(){
		return new CKPagoAcreedor();
	}
	

	
	
	
	
	public static String getAcreedorEstatusByid(int id){
		return CatalogosConnector.getAcreedorEstatusByid(id);	
	}
	
	public static List<CatAcreedorStatus> getAllStatusAcreedorEstatus(){
		return CatalogosConnector.getAllStatusAcreedorEstatus();	
	}
	
	
	
	
	public static List<Acreedor> getAllAcreedores() {
		return AcreedorConnector.getAllAcreedores();	
	}
	public static Acreedor getAcreedorById(int idAcc){
		return AcreedorConnector.getAcreedorById(idAcc);	
	}
	public static List<CatPeriodoSolicitado> getAllPeriodoSolicitado(){
		return CatalogosConnector.getAllPeriodoSolicitado();
	}
	public static String getPlazoSolicitadoPorId(int id){
		return CatalogosConnector.getPlazoSolicitadoPorId(id);
	}
	
	public static synchronized int guardaAcreedor(Acreedor ac){
		return AcreedorConnector.guardaAcreedor(ac);
	}
	
	public static String getCurrentDateStr(){
		return com.mexcad.utils.Formatter.getDateToday();
		
	}
	public static List<CatEsquemaCredito> getAllEsquemaCredito(){
		return CatalogosConnector.getAllEsquemaCredito();	
	}
	public static String getEsquemaCreditoByid(int id){
		return CatalogosConnector.getEsquemaCreditoByid(id);	
	}
	public static List<CatMoneda> getAllMonedas(){
		return CatalogosConnector.getAllMonedas();
	}
	

	
	public static List<CreditoAcreedor> getAllCreditosAcreedoresByStatus(int status) {
		
		return AcreedorConnector.getAllCreditosAcreedoresByStatus(status);	
	}
	public static List<CreditoAcreedor> getAllCreditosAcreedoresByIdAcreedor(int idAcc) {
		 return AcreedorConnector.getAllCreditosAcreedoresByIdAcreedor(idAcc);	
	}
	
	
	public static List<CreditoAcreedor> getAllCreditosAcreedores() {
		
		return AcreedorConnector.getAllCreditosAcreedores();	
	}
	
	public static List<CreditoAcreedor> getListadoCreditoAcreedorById(int idAcc){
		return AcreedorConnector.getListadoCreditoAcreedorById(idAcc);
		
	}
	
	public static synchronized void eliminaAcreedor(int idAcreedor) {
		AcreedorConnector.eliminaAcreedor(idAcreedor);
	}
	
	public static List<CreditoAcreedor> buscarCreditosAcreedores(String idAcreedor, String idEstatus, String fechaInicial, String fechaFinal){
		return AcreedorConnector.buscarCreditosAcreedores(idAcreedor, idEstatus, fechaInicial, fechaFinal);

	}
	
	public static int guardaCreditoAcreedor(CreditoAcreedor cred){
		return AcreedorConnector.guardaCreditoAcreedor(cred);
	}
	
	public static CreditoAcreedor getCreditoAcreedorById(int idCred){
		return AcreedorConnector.getCreditoAcreedorById(idCred);
	}
	
	public static List<PagoAcreedor> getAllPagosCreditoAccByIdCredito(int idCredito){
		return 	AcreedorConnector.getAllPagosCreditoAccByIdCredito(idCredito);
		
	}
	
	public static synchronized int guardaPagoAcreedor(int idCredito, double monto, String fecha){
		return AcreedorConnector.guardaPagoAcreedor( idCredito,  monto,  fecha);
	}
	
	public static List<CatEsquemaCreditoAc> getAllEsquemaCreditoAc(){
		return CatalogosConnector.getAllEsquemaCreditoAc();	
	}
	public static String getEsquemaCreditoAcByid(int id){
		return CatalogosConnector.getEsquemaCreditoAcByid(id);	
	}
	
	
	

	public static CreditoAcreedor actualizaInteresesDeCreditoAcreedor(CreditoAcreedor credito, String fecha){
		return AcreedorConnector.actualizaInteresesDeCreditoAcreedor(credito, fecha);
	}
	
	public static int actualizaInteresesDeCreditoAcreedor(int idCredito, String fecha){
	
		return AcreedorConnector.actualizaInteresesDeCreditoAcreedor(idCredito, fecha);
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}
